import {logger} from "@/main/log.js";


// function throttle(func, wait, options = {}) {
//     let lastExecTime = 0;
//     let timerId = null;
//     let lastThis, lastArgs;
//
//     // 默认配置（头部执行+尾部执行）
//     const {leading = true, trailing = true} = options;
//
//     // 执行函数并重置状态
//     const execute = () => {
//         func.apply(lastThis, lastArgs);
//         lastExecTime = Date.now();
//         timerId = null;
//         lastThis = lastArgs = null;
//     };
//
//     // 节流控制函数
//     function throttled(...args) {
//         const now = Date.now();
//         lastThis = this;
//         lastArgs = args;
//
//         // 计算距离下次执行的时间
//         const remaining = wait - (now - lastExecTime);
//
//         // 1. 首次调用（lastExecTime为0）
//         // 2. 等待时间已过（超时情况）
//         if (lastExecTime === 0 || remaining <= 0) {
//             // 清除尾部执行定时器
//             if (timerId) {
//                 clearTimeout(timerId);
//                 timerId = null;
//             }
//
//             // 头部执行
//             if (leading) {
//                 execute();
//             } else {
//                 // 不执行头部但记录时间，保证尾部执行正确
//                 lastExecTime = now;
//             }
//         }
//         // 设置尾部执行定时器
//         else if (trailing && !timerId) {
//             timerId = setTimeout(() => {
//                 execute();
//             }, remaining);
//         }
//     }
//
//     // 取消功能
//     throttled.cancel = () => {
//         if (timerId) clearTimeout(timerId);
//         timerId = null;
//         lastExecTime = 0;
//         lastThis = lastArgs = null;
//     };
//
//     return throttled;
// }

//
// function throttle(fn, obj, delay, ...args) {
//     let last = 0;
//     return function () {
//         logger.debug('throttle', last)
//         const now = Date.now();
//         if (now - last > delay) {
//             logger.debug('start func')
//             last = now;
//             fn.apply(obj, args);
//         }
//     };
// }
//
// export {
//     throttle
// }